ParseStateは複数持てるようにする | scrapVim-lite-3
from ScrapVim-lite-3
ScrapVim-lite-3/ParseStateは複数持てるようにする
「operatorとmotionと数字のどれかを受け付ける」といった状態を簡単に表現できる
normal modeをJavascript Objectで表現してみる#5fd3ddb11280f00000b9e8f6みたいなクラスを作らずに済む
渡されたvim key mapにマッチするコマンドがないParseStateは停止コマンドを発火する
ScrapVim-lite-3/Modeでそれを感知して、リストからそのParseStateを削除する
リストが空になったら初期状態へ移行する
入力されたキーもリセットする
コマンドの解析はそれぞれのParseStateで独立に行う
遷移できるようになったら、他のParseStateの状態に関係なく遷移処理を行う
/icons/hr.icon
↑これどっかのページにも同じこと書いたんだけどどこだっけ?
見つけた
from ScrapVim-lite-3/Modeの設計案 (旧)#5fdb5d071280f000001c74d2
これ複数格納できるようにしたほうがいいんじゃないか?
「数字かmotionを受け付ける」と行った状態を表現できる
normal modeをJavascript Objectで表現してみる#5fd3ddb11280f00000b9e8f6では両方の状態を表すParseStateを作っていたが、そんなことをせずに済む
与えられたvim key mapsに該当するcommandが見つからなくなったstateから削除していく
これはforループで各stateごとに評価して、番号とstateを紐付けるようにしておけば、指定したstateを削除できる
#2020-12-17 22:29:48
#2020-12-16 14:53:47